The present invention relates to asset management systems. More particularly, the present invention relates to methods and apparatus for distributed serverless file management.
Throughout the years, movie makers have often tried to tell stories involving make-believe creatures, far away places, and fantastic things. To do so, they have often relied on animation techniques to bring the make-believe to “life.” Two of the major paths in animation have traditionally included, drawing-based animation techniques and stop motion animation techniques.
Drawing-based animation techniques were refined in the twentieth century, by movie makers such as Walt Disney and used in movies such as “Snow White and the Seven Dwarfs” (1937) and “Fantasia” (1940). This animation technique typically required artists to hand-draw (or paint) animated images onto a transparent media or cels. After painting, each cel would then be captured or recorded onto film as one or more frames in a movie.
Stop motion-based animation techniques typically required the construction of miniature sets, props, and characters. The filmmakers would construct the sets, add props, and position the miniature characters in a pose. After the animator was happy with the appearance of the scene, one or more frames of film would be taken of that specific arrangement. Stop motion animation techniques were developed by movie makers such as Willis O'Brien for movies such as “King Kong” (1933). Subsequently, these techniques were refined by animators such as Ray Harryhausen for movies including “Mighty Joe Young” (1948) and Clash Of The Titans (1981).
With the wide-spread availability of computers in the later part of the twentieth century, animators began to rely upon computers to assist in the animation process. This included using computers to facilitate drawing-based animation, for example, by painting images, by generating in-between images (“tweening”), and the like. This also included using computers to augment stop motion animation techniques. For example, physical models could be represented by virtual models in computer memory, and manipulated.
One of the pioneering companies in the computer-generated animation (CG animation) industry was Pixar. Pixar is more widely known as Pixar Animation Studios, the creators of animated features such as “Toy Story” (1995) and “Toy Story 2” (1999), “A Bugs Life” (1998), “Monsters, Inc.” (2001), “Finding Nemo” (2003), “The Incredibles” (2004), and others. In addition to creating animated features, Pixar developed computing platforms specially designed for CG animation, and CG animation software now known as RenderMan®. RenderMan® was particularly well received in the animation industry and recognized with two Academy Awards®. RenderMan® renders images based upon conceptual “animation assets” including files that describe a scene, that describe an object, and the like.
Scenes to be rendered are typically specified (assembled) by many users, including animators, lighters, shaders, modelers, technical directors, and the like. These scene descriptor files typically includes descriptions of other animation assets including objects, camera angles, lighting sources, and the like in a single file.
Drawbacks to having a single scene descriptor file include other animation assets include that only one user could work on a scene at a time. Another drawback included that objects that are included in multiple scenes had to be stored within each scene descriptor file, thus wasting memory.
To address these drawbacks, Pixar developed an internal technique for segmenting a scene descriptor file from one large file into a series of smaller files. As described in the co-pending application described above, Pixar developed and used the concept of “hook set” files and references to “hook files” to describe a scene, a “shot” (a series of related scenes) and the like. As such, a typical scene descriptor files is composed of references to a number of separate object data files. Accordingly, an object could be stored once, but used and referenced in more than one scene. Additionally, different users could modify different objects in a scene at the same time.
One method for providing access to animation assets to many different users has been with the use of a centralized file server. By using a centralized file server, the proliferation of different versions of animation assets were controlled and the consistency of animation assets in different scenes was improved. In such systems, the centralized file server received requests from client computers for animation assets, and in response, the file server would locate the animation asset and provide the asset to the client computers. Additionally, the centralized file server typically received asset data and an animation asset name from client computers, and stored the data associated with the animation asset name.
The inventors have determined that drawbacks to a centralized server for managing a file storage system includes that it is a single point of failure and slowness. For example, if the centralized server were down, no access to animation assets could be performed and the entire animation process would halt. This would last until the server were brought back up. Another drawback was that a centralized server scaled poorly with increasing number of clients, leading to a performance bottleneck. For example, because a centralized server could server only one request at a time, if five clients requested the same animation asset, the last client would have to wait until the first four clients were served.
Accordingly what is desired is an improved method and apparatus for asset management, without the drawbacks described above.